Halogen ComponentのState
1つの値のときも、後で増えることを考えればrecordの方がいいのでは?とも思うが、いったん普通に一つの値にするかmrsekut.icon
State系関数
code:purs(hs)
modify :: forall s m. MonadState s m => (s -> s) -> m s
modify f = state \s -> let s' = f s in Tuple s' s'
modify_ :: forall s m. MonadState s m => (s -> s) -> m Unit
modify_ f = state \s -> Tuple unit (f s)
modify
modify allows you to update the state, given the previous state, returning the new state
modify_
modifyと同じだが、新しい状態を返さない
mofidyを使って返り値を破棄するぐらいならこちらを使ったほうが簡潔
こっちを使うことが多いmrsekut.icon
get
現在の状態を取得
gets
gets allows you to retrieve the current state and also apply a function to it (most commonly, _.fieldName to retrieve a particular field from a record)
Stateモナドと同じノリmrsekut.icon
initialState :: Input -> State
local stateの初期値
多相にするのとUnitにするのって全然意味として違うくない?
引数取らないことを明示するなら後者のほうが正しい気がするが、一般的には前者を使うらしい。なんで?mrsekut.icon